#Model Download
from modelscope import snapshot_download
model_dir = snapshot_download('BAAI/bge-large-zh-v1.5')

#1 用FlagEmbedding，北京智源的产品
#情形一：
from FlagEmbedding import FlagModel

sentences_1 = ["这个周末我计划去海边度假，享受阳光和海浪","最新研究表明，定期运动有助于提高工作效率和创造力"]
sentences_2 = ["我期待的假期是在沙滩上，听着海浪声很放松","科技公司最新发布了一款新的智能手机，引起了广泛关注"]

model = FlagModel(model_dir,use_fp16=True)

embeddings_1 = model.encode(sentences_1)
#print(embeddings_1.shape)
embeddings_2 = model.encode(sentences_2)
#print(embeddings_2.shape)

similarity = embeddings_1 @ embeddings_2.T

#print(similarity)

#情形二：Query比较短，Massage比较长
queries = ["最新的AI研究成果","健康饮食的重要性"]
passages = ["AI技术正在不断进步，最新的研究揭示了其在医疗领域的潜在应用。", "合理的饮食习惯对维持良好的身体健康至关重要，包括足够的蔬菜和水果。"]

q_embeddings = model.encode_queries(queries)
p_embeddings = model.encode(passages)

scores = q_embeddings @ p_embeddings.T
#print(scores)

#2 用Sentence_transformers
#2.1 情形一：一般情况下
from sentence_transformers import SentenceTransformer

sentences2_1 = ["这个周末我计划去海边度假，享受阳光和海浪", "最新研究表明，定期运动有助于提高工作效率和创造力"]
sentences2_2 = ["我期待的假期是在沙滩上，听着海浪声放松", "科技公司最近发布了一款新的智能手机，引起了广泛关注"]

emb2_1 = model.encode(sentences2_1)
emb2_2 = model.encode(sentences2_2)

similarity2 = emb2_1 @ emb2_2.T
print(similarity2)